package com.xiaoyy.app.api.core.dao.model;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 人员基础信息表
 * </p>
 *
 * @author chenzh
 * @since 2020-06-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("PERSON_INFO")
@ApiModel(value="PersonInfo对象", description="人员基础信息表")
public class PersonInfo extends Model<PersonInfo> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "人员id")
    @TableId(value = "PERSON_ID", type = IdType.INPUT)
    private Long personId;

    @ApiModelProperty(value = "人员编码")
    @TableField("PERSON_CODE")
    private String personCode;

    @ApiModelProperty(value = "姓名")
    @TableField("FULL_NAME")
    private String fullName;

    @ApiModelProperty(value = "曾用名")
    @TableField("BEFORE_NAME")
    private String beforeName;

    @ApiModelProperty(value = "证件类型")
    @TableField("CARD_TYPE")
    private String cardType;

    @ApiModelProperty(value = "证件号码")
    @TableField("IDCARD")
    private String idcard;

    @ApiModelProperty(value = "性别")
    @TableField("SEX")
    private String sex;

    @ApiModelProperty(value = "出生日期")
    @TableField("BIRTHDAY")
    private Date birthday;

    @ApiModelProperty(value = "证件有效期 开始")
    @TableField("CARD_DATE_START")
    private Integer cardDateStart;

    @ApiModelProperty(value = "证件有效期 结束")
    @TableField("CARD_DATE_END")
    private Integer cardDateEnd;

    @ApiModelProperty(value = "电子邮箱")
    @TableField("EMAIL")
    private String email;

    @ApiModelProperty(value = "手机")
    @TableField("CELLPHONE")
    private String cellphone;

    @ApiModelProperty(value = "微信")
    @TableField("WEIXIN")
    private String weixin;

    @ApiModelProperty(value = "钉钉号")
    @TableField("DINGDING")
    private String dingding;

    @ApiModelProperty(value = "国家/地区")
    @TableField("COUNTRY")
    private String country;

    @ApiModelProperty(value = "是否生成登入账号 0 未生成 1 已生成")
    @TableField("HAS_ACCOUNT")
    private String hasAccount;

    @ApiModelProperty(value = "账号id")
    @TableField("USER_ID")
    private String userId;

    @ApiModelProperty(value = "人员类型 个人身份")
    @TableField("PERSON_TYPE")
    private String personType;

    @ApiModelProperty(value = "民族")
    @TableField("NATION")
    private String nation;

    @ApiModelProperty(value = "宗教信仰")
    @TableField("FAITH")
    private String faith;

    @ApiModelProperty(value = "户口性质")
    @TableField("RESIDENCE_TYPE")
    private String residenceType;

    @ApiModelProperty(value = "婚姻状态")
    @TableField("MARRIAGE_STATUS")
    private String marriageStatus;

    @ApiModelProperty(value = "政治面貌")
    @TableField("POLITICAL_INFO")
    private String politicalInfo;

    @ApiModelProperty(value = "有效状态 0 禁用 1启用")
    @TableField("STATUS")
    private String status;

    @ApiModelProperty(value = "排列顺序")
    @TableField("ORDER_NO")
    private Integer orderNo;

    @ApiModelProperty(value = "姓名拼音全拼")
    @TableField("SPELL_ALL")
    private String spellAll;

    @ApiModelProperty(value = "姓名首字母全拼")
    @TableField("SPELL_FIRST")
    private String spellFirst;

    @ApiModelProperty(value = "户籍地址 省")
    @TableField("HOUSEHOLD_PROVINCE_KEY")
    private String householdProvinceKey;

    @ApiModelProperty(value = "户籍地址 省 中文")
    @TableField("HOUSEHOLD_PROVINCE_VALUE")
    private String householdProvinceValue;

    @ApiModelProperty(value = "户籍地址 市")
    @TableField("HOUSEHOLD_CITY_KEY")
    private String householdCityKey;

    @ApiModelProperty(value = "户籍地址 市 中文")
    @TableField("HOUSEHOLD_CITY_VALUE")
    private String householdCityValue;

    @ApiModelProperty(value = "户籍地址 县")
    @TableField("HOUSEHOLD_COUNTY_KEY")
    private String householdCountyKey;

    @ApiModelProperty(value = "户籍地址 县 中文")
    @TableField("HOUSEHOLD_COUNTY_VALUE")
    private String householdCountyValue;

    @ApiModelProperty(value = "户籍地址详情")
    @TableField("HOUSEHOLD_DETAIL")
    private String householdDetail;

    @ApiModelProperty(value = "常住地 省")
    @TableField("ADDRESS_PROVINCE_KEY")
    private String addressProvinceKey;

    @ApiModelProperty(value = "常住地 省 中文")
    @TableField("ADDRESS_PROVINCE_VALUE")
    private String addressProvinceValue;

    @ApiModelProperty(value = "常住地 市")
    @TableField("ADDRESS_CITY_KEY")
    private String addressCityKey;

    @ApiModelProperty(value = "常住地 市 中文")
    @TableField("ADDRESS_CITY_VALUE")
    private String addressCityValue;

    @ApiModelProperty(value = "常住地 县")
    @TableField("ADDRESS_COUNTY_KEY")
    private String addressCountyKey;

    @ApiModelProperty(value = "常住地 县 中文")
    @TableField("ADDRESS_COUNTY_VALUE")
    private String addressCountyValue;

    @ApiModelProperty(value = "常住地详细信息")
    @TableField("ADDRESS_DETAIL")
    private String addressDetail;

    @ApiModelProperty(value = "备注")
    @TableField("REMARKS")
    private String remarks;

    @ApiModelProperty(value = "人员照片地址")
    @TableField("PHOTO")
    private String photo;

    @ApiModelProperty(value = "户籍地址 乡镇街道")
    @TableField("HOUSEHOLD_STREET_KEY")
    private String householdStreetKey;

    @ApiModelProperty(value = "户籍地址 乡镇街道 中文")
    @TableField("HOUSEHOLD_STREET_VALUE")
    private String householdStreetValue;

    @ApiModelProperty(value = "常住地 乡镇街道 ")
    @TableField("ADDRESS_STREET_KEY")
    private String addressStreetKey;

    @ApiModelProperty(value = "常住地 乡镇街道  中文")
    @TableField("ADDRESS_STREET_VALUE")
    private String addressStreetValue;

    @ApiModelProperty(value = "户籍地址 村社区")
    @TableField("HOUSEHOLD_VILLAGE_KEY")
    private String householdVillageKey;

    @ApiModelProperty(value = "户籍地址 村社区 中文")
    @TableField("HOUSEHOLD_VILLAGE_VALUE")
    private String householdVillageValue;

    @ApiModelProperty(value = "常住地 村社区 ")
    @TableField("ADDRESS_VILLAGE_KEY")
    private String addressVillageKey;

    @ApiModelProperty(value = "常住地 村社区  中文")
    @TableField("ADDRESS_VILLAGE_VALUE")
    private String addressVillageValue;

    @ApiModelProperty(value = "联系电话")
    @TableField("PHONE")
    private String phone;

    @ApiModelProperty(value = "身高 cm")
    @TableField("HEIGHT")
    private BigDecimal height;

    @ApiModelProperty(value = "体重 kg")
    @TableField("WEIGHT")
    private BigDecimal weight;

    @ApiModelProperty(value = "血型")
    @TableField("BLOOD_TYPE")
    private String bloodType;

    @ApiModelProperty(value = "职业、工种")
    @TableField("OCCUPATION")
    private String occupation;

    @ApiModelProperty(value = "健康状况与伤残情况")
    @TableField("HEALTH_TYPE")
    private String healthType;

    @ApiModelProperty(value = "入党或入团时间")
    @TableField("JOIN_ORG_TIME")
    private Date joinOrgTime;

    @ApiModelProperty(value = "党内职务")
    @TableField("PARTY_POSTS")
    private String partyPosts;

    @ApiModelProperty(value = "档案出生日期")
    @TableField("ARCHIVES_BIRTHDAY")
    private Date archivesBirthday;

    @ApiModelProperty(value = "外网名")
    @TableField("FOREIGN_NAME")
    private String foreignName;

    @ApiModelProperty(value = "参加工作时间")
    @TableField("WORKED_TIME")
    private Date workedTime;

    @ApiModelProperty(value = "人员状态")
    @TableField("PERSON_STATUS")
    private String personStatus;

    @ApiModelProperty(value = "专长")
    @TableField("EXPERTISE")
    private String expertise;

    @ApiModelProperty(value = "爱好")
    @TableField("HOBBY")
    private String hobby;

    @ApiModelProperty(value = "退役军人（武警）标识 军转干标识")
    @TableField("RETIRE_FLAG")
    private String retireFlag;

    @ApiModelProperty(value = "审核状态 0 未审核 1 审核通过 2 审核不通过")
    @TableField("AUTH_STATUS")
    private String authStatus;

    @ApiModelProperty(value = "审核说明")
    @TableField("AUTH_REMARKS")
    private String authRemarks;

    @ApiModelProperty(value = "审核人")
    @TableField("AUTH_USER_ID")
    private String authUserId;

    @ApiModelProperty(value = "审核时间")
    @TableField("AUTH_TIME")
    private Date authTime;

    @ApiModelProperty(value = "创建人")
    @TableField("CREATE_NAME")
    private String createName;

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    @TableField("UPDATE_NAME")
    private String updateName;

    @ApiModelProperty(value = "更新时间")
    @TableField(value = "UPDATE_TIME", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty(value = "逻辑删除标志 0 正常 1 删除")
    @TableField("DEL")
    private String del;


    @Override
    protected Serializable pkVal() {
        return this.personId;
    }

}
